package com.rabbitmq.typic;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.util.Scanner;

/**
 * @author yinxing
 * @date 2022-08-29
 */
public class Producer {

    public static final String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception{
        //创建连接工厂
        ConnectionFactory factory =new ConnectionFactory();
        //工厂配置
        factory.setHost("192.168.72.128");
        factory.setUsername("guest");
        factory.setPassword("guest");
        factory.setPort(5672);
        //创建连接
        Connection connection = factory.newConnection();
        //创建信道
        Channel channel = connection.createChannel();
        /**
         * 生成一个队列
         * 1.队列名称
         * 2.队列中的消息是否持久化，默认存储内存，不能持久化，
         * 是否需要持久化到硬盘，默认不持久化
         * 3.该队列是否指给一个消费者进行消费，是否消息共享
         * 4.是否自动删除
         * 5.其他参数配置
         */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);
        //发消息
        Scanner scanner =new Scanner(System.in);
        while (scanner.hasNext()){
            String message = scanner.next();
            /**
             * 1.交换机名字
             * 2.路由Key
             * 3.其他参数
             * 4.消息体
             */
            channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
            System.out.println("消息推送完毕！");
        }
    }

}
